<?php
class Valutatetel extends AppModel {

	var $name = 'Valutatetel';
	var $primaryKey = 'tetel_id';
	
	var $belongsTo = array(
			'Tetel' => array('className' => 'Tetel',
								'foreignKey' => 'tetel_id',
								'conditions' => '',
								'fields' => '',
								'order' => ''
			)
		);

/**
 * Egy napló valuta egyenlegének kiszámítása
 *
 * @param int $naploid a lekérdezett napló id-je
 * @param int $ev a lekérdezés éve
 * @return array tegyenleg, kegyenleg
 */
	
	function getEgyenleg($naploId, $ev, $bizonylatId = null){
		$bizonylatIdFeltetel = $bizonylatId ? 'AND bizonylatok.id <= ' . $bizonylatId : '';
			
		$sql = 'SELECT SUM(valutatetelek.osszeg) AS egyenleg, (tetelek.t = naplok.alapertelmezett_szamla) AS tartozik
						FROM valutatetelek
						LEFT JOIN tetelek ON tetelek.id = valutatetelek.tetel_id
						LEFT JOIN bizonylatok ON bizonylatok.id = tetelek.bizonylat_id
						LEFT JOIN naplok ON bizonylatok.naplo_id = naplok.id
						WHERE naplok.id = '.$naploId.'
						'.$bizonylatIdFeltetel.'
						AND (
							tetelek.t = naplok.alapertelmezett_szamla
							OR tetelek.k = naplok.alapertelmezett_szamla
						)
						AND YEAR(bizonylatok.datum) = '.$ev.'
						AND tetelek.spec != "d"
						GROUP BY tartozik
						ORDER BY tartozik DESC';

		$valutaEgyenlegek = $this->query($sql);

		$valutaEgyenleg['tegyenleg'] = 0;
		$valutaEgyenleg['kegyenleg'] = 0;

		foreach($valutaEgyenlegek as $v){
			if($v[0]['tartozik'])
				$valutaEgyenleg['tegyenleg'] = $v[0]['egyenleg'];
			else
				$valutaEgyenleg['kegyenleg'] = $v[0]['egyenleg'];
		}
		return($valutaEgyenleg);
	}

}
?>